//#include <stdio.h>
//struct Student{
//	char num[10];
//	float score1;
//	float score2;
//	float score3;
//	float all;
//	float ave;
//}member[10];
//int main()
//{
//	int i,j;
//	struct Student tmp;
//	for(i=0;i<10;i++)
//	{
//		scanf("%s",member[i].num);
//		scanf("%f",&member[i].score1);
//		scanf("%f",&member[i].score2);
//		scanf("%f",&member[i].score3);
//		member[i].all=member[i].score1+member[i].score2+member[i].score3;
//		member[i].ave=member[i].all/3;
//	}
//	for(i=0;i<9;i++)
//	{
//		for(j=i+1;j<10;j++)
//		{
//			if(member[i].all<member[j].all)
//			{
//				tmp=member[i];
//				member[i]=member[j];
//				member[j]=tmp;
//			}
//		}
//	}
//	for(i=0;i<10;i++)
//		printf("%s\t%f\t%f\t%f\t%f\t%f\n",member[i].num,member[i].score1,member[i].score2,member[i].score3,member[i].all,member[i].ave);
//    return 0;
//}

//#include <stdio.h>
//struct person{
//	char name[20];
//	int age;
//}List[10];
//void Input(struct person p[])
//{
//	for(int i=0;i<10;i++)
//	{
//		scanf("%s",p[i].name);
//		scanf("%d",&p[i].age);
//	}
//}
//int main()
//{
//	int i=0,k=0;
//	Input(List);
//	for(i=0;i<10;i++)
//	{
//		if(List[i].age>List[k].age)
//			k=i;
//	}
//	printf("%s %d",List[k].name,List[k].age);
//	return 0;
//}

#include <stdio.h>
#include <stdlib.h>
struct list{
	int data;
	struct list *next;
};
typedef struct list LinkNode;
typedef struct list* LinkList;
int Function(LinkList head)
{
	int i=0;
	LinkList p=head;
	while(p)
	{
		p=p->next;
		i++;
	}
	return i;
}

int main()
{
	int tmp,count;
	LinkList head=NULL,p=NULL,q=NULL;
	while(1)
	{
		scanf("%d",&tmp);
		if(tmp<0)
			break;
		else
		{    
			q=(LinkList)malloc(sizeof(LinkNode));
			q->data=tmp;
			q->next=NULL;
		}	
		
		if(head==NULL)
			head=p=q;
		else
			p->next=q;
		p=q;
	}
	count=Function(head);
	printf("%d",count);
	return 0;
}
